//package com.bs.product.utils;
//
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
//import com.baomidou.mybatisplus.generator.config.GlobalConfig;
//import com.baomidou.mybatisplus.generator.config.PackageConfig;
//import com.baomidou.mybatisplus.generator.config.StrategyConfig;
//import com.bs.product.entity.BaseEntity;
//
//public class Generator {
//    public static void main(String[] args) {
//       //1. 创建代码生成器对象，执行生成代码操作
//        AutoGenerator autoGenerator = new AutoGenerator();
//        //2. 数据源相关配置：读取数据库中的信息，根据数据库表结构生成代码
//        DataSourceConfig dataSource = new DataSourceConfig();
//        dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
//        dataSource.setUrl("jdbc:mysql://localhost:3306/product?serverTimezone=UTC");
//        dataSource.setUsername("root");
//        dataSource.setPassword("root");
//        autoGenerator.setDataSource(dataSource);
//
//             //设置全局配置
//                 // 需要修改生成代码的路径
//            GlobalConfig globalConfig = new GlobalConfig();
//            globalConfig.setOutputDir(System.getProperty("user.dir")+"/product/src/main/java");  //设置代码生成位置
//            globalConfig.setOpen(false); //设置生成完毕后是否打开生成代码所在的目录
//            globalConfig.setAuthor("lukang"); //设置作者
//            globalConfig.setFileOverride(true);  //设置是否覆盖原始生成的文件
//            globalConfig.setMapperName("%sMapper"); //设置数据层接口名，%s为占位符，指代模块名称
//            globalConfig.setIdType(IdType.ASSIGN_ID); //设置Id生成策略
//            autoGenerator.setGlobalConfig(globalConfig);
//
//             //设置包名相关配置
//             PackageConfig packageInfo = new PackageConfig();
//             packageInfo.setParent("com.bs.product");//设置生成的包名，与代码所在位置不冲突，二者叠加组成完整路径
//             packageInfo.setEntity("entity");  //设置实体类包名
//             packageInfo.setMapper("mapper");  //设置数据层包名
//             autoGenerator.setPackageInfo(packageInfo);
//
//             // 策略配置
//                StrategyConfig strategyConfig = new StrategyConfig();
//
//            //strategyConfig.setInclude("tbl_product","tbl_type"); //设置当前参与生成的表名，参数为可变参数
//            strategyConfig.setTablePrefix("tbl_"); //设置数据库表的前缀名称，模块名 = 数据库表名 - 前缀名 例如：User = tbl_user - tbl_
//            // 需要在entity 创建好BaseEntity 类，而且把公共的属性定义到BaseEntity中
//            strategyConfig.setSuperEntityClass(BaseEntity.class);// 告诉generator 生成实体类是，在BaseEntity 已经有的字段
//           //告诉generator 生成实体类， 在BaseEntity 已经有的字段
//            strategyConfig.setSuperEntityColumns("createTime","updateTime","version","deleted");
//            strategyConfig.setRestControllerStyle(true);//设置是否启用Rest风格
//            strategyConfig.setEntityLombokModel(true);//设置是否启用lombok
//            autoGenerator.setStrategy(strategyConfig);
//
//        //3.执行生成操作
//        autoGenerator.execute();
//    }
//}
